package com.xqboss.apps.vo.user;

import com.fasterxml.jackson.annotation.JsonIgnore;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.hibernate.validator.constraints.Range;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;

/**
 * 身份段位升级-请求
 */
@Data
@ApiModel("身份晋升")
public class IdentityRankUpgradeVo {

    @ApiModelProperty("藏品类型（身份卡-0 碎片-1）")
    @NotNull(message = "藏品类型（身份卡-0 碎片-1）不能为空！")
    @Min(0)
    @Max(1)
    private Integer spendNftType;

    @ApiModelProperty("藏品（身份卡或碎片）numberID")
    @NotNull(message = "藏品（身份卡或碎片）numberID不能为空！")
    private Long nftNumberId;

    @ApiModelProperty("当前身份段位ID")
    @NotNull(message = "当前身份段位ID不能为空！")
    private Long currentIdentityId;

    @ApiModelProperty("晋升身份段位ID")
    @NotNull(message = "晋升身份段位ID不能为空！")
    private Long promotionIdentityId;

    @ApiModelProperty("当前身份段位")
    @NotBlank(message = "当前身份段位不能为空！")
    private String currentIdentity;

    @ApiModelProperty("晋升身份段位")
    @NotBlank(message = "晋升身份段位不能为空！")
    private String promotionIdentity;

    @ApiModelProperty("最大等级")
    @NotBlank(message = "最大等级不能为空！")
    private String maxLevel;

    @ApiModelProperty("花费热豆")
    @NotNull(message = "花费热豆不能为空！")
    private BigDecimal spendHotBeans;

    @ApiModelProperty("升段消耗资源内容")
    @JsonIgnore
    private String resourceCost;

    @ApiModelProperty("冷却时间(分钟)")
    @NotNull(message = "冷却时间(分钟不能为空！")
    @Range
    private Integer coolingTime;
}
